Nowadays, a product or service is usually designed according to customer specifications. However, when the customer's needs change, the product or service has to be re-designed to meet the new specifications. Software-based systems have been built to generate a generic set of products or services, each of which may be individualized according to the customer's requirements by dynamically reconfiguring the systems.
To save the system cost, interchangeable hardware components for use in the aforementioned systems are standardized and their interfaces are compatible. In addition, the capacity of the storage for software components in such systems is limited.
Because of the storage space limitation, it is desirable that those software components which are no longer needed after reconfiguring the system are removed therefrom. Moreover, to save time for dynamic reconfiguration, only those software components that are needed but not currently available in the system are loaded thereon. Since no known technique can effectively accomplish these tasks, there thus exists a need for a methodology for efficiently maintaining the system software components during a system reconfiguration.